tg-me.com/pyproglib/6819
Last Update:
Проблема: разработка смарт-контрактов часто требует глубокого понимания Solidity и сложных инструментов. Для Python-разработчиков важен упрощённый подход к написанию и тестированию смарт-контрактов.
Решение: в книге Hands-On Blockchain for Python Developers автор показывает, как использовать библиотеку web3.py для взаимодействия с Ethereum-сетью и создания простого смарт-контракта, написанного на Solidity, из Python.
Пример кода:
from web3 import Web3
# Подключение к локальному Ethereum ноду
w3 = Web3(Web3.HTTPProvider('http://127.0.0.1:8545'))
# ABI и байткод контракта (упрощённый пример)
abi = '[{"inputs":[],"name":"getValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]'
bytecode = '0x6080604052348015600f57600080fd5b5060a88061001e6000396000f3fe60806040...'
# Развёртывание контракта
SimpleContract = w3.eth.contract(abi=abi, bytecode=bytecode)
tx_hash = SimpleContract.constructor().transact({'from': w3.eth.accounts[0]})
tx_receipt = w3.eth.wait_for_transaction_receipt(tx_hash)
print(f'Контракт развернут по адресу: {tx_receipt.contractAddress}')
Преимущества:
— Позволяет Python-разработчикам работать со смарт-контрактами без глубокого погружения в Solidity
— Использование знакомых инструментов Python
— Автоматизация и тестирование контрактов на локальных сетях
Библиотека питониста #буст